test: support dual-server E2E integration tests and protocol negotiation fallbacks#413
Merged
Merged
Conversation
anubhav756
changed the base branch from
anubhav-draft-negotiation
to
anubhav-sep-2243
July 17, 2026 16:02
anubhav756
force-pushed
the
anubhav-test-infra
branch
from
July 17, 2026 16:14
4e4fd46 to
91f49d9
Compare
anubhav756
force-pushed
the
anubhav-test-infra
branch
6 times, most recently
from
July 17, 2026 23:03
618c662 to
3c0859f
Compare
anubhav756
force-pushed
the
anubhav-test-infra
branch
2 times, most recently
from
July 19, 2026 12:12
5106002 to
8c56f1a
Compare
Contributor
The GCS path seems to be the same. Have the binaries been moved? The tests seem to be passing |
anubhav756
force-pushed
the
anubhav-sep-2243
branch
from
July 21, 2026 04:42
6380f5d to
5641929
Compare
Contributor
Author
Good catch! When I opened this PR, I had removed the |
anubhav756
force-pushed
the
anubhav-test-infra
branch
from
July 21, 2026 05:35
8c56f1a to
1ef9d46
Compare
anubhav756
force-pushed
the
anubhav-test-infra
branch
from
July 21, 2026 14:53
1ef9d46 to
e94b464
Compare
twishabansal
approved these changes
Jul 21, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
This PR updates the E2E testing infrastructure to support running integration tests against multiple parallel server configurations, specifically:
5000).5001) run with the--enable-draft-specsflag.By verifying the SDK's behavior against both environments, we ensure robust fallback and negotiation behavior when newer protocol drafts are configured.
Note
This PR mirrors Python SDK changes from googleapis/mcp-toolbox-sdk-python#706.
Changes
1. E2E Test Infrastructure & Multi-Server Orchestration
ToolboxServer1on port5000(stable).ToolboxServer2on port5001(with--enable-draft-specs).killServerto gracefully terminate both server processes and clean up assets.2. E2E Test Suites
@toolbox-sdk/coreand@toolbox-sdk/adkto run all test cases against both servers (localhost:5000andlocalhost:5001).Protocol Configuration E2E Testswhich:MCP_v20251125) if the target server does not support the client's configured draft protocol (MCP_DRAFT_2026_v1).3. Protocol & Client Updates
ToolboxClient's constructor that alerted when initializing with a version other thanMCP_LATEST.ToolboxClientautomatically negotiates or falls back to older/stable supported protocol versions when connecting to servers that don't support the latest draft spec.getSupportedMcpVersions()is supported by the SDK.Note
We will still handle the version migration guidance via documentation, deprecated annotations on obsolete versions, or a selective opt-in debug/telemetry logger rather than unconditional warning calls in constructor initialization.
5. Unit Test Adjustments
MockTransportin client/tool unit tests with a mockprotocolVersionproperty to satisfy current transport interface requirements.MCP_LATESTconsole warnings.Note
This PR updates
Protocol.MCP_LATESTto point toProtocol.MCP_DRAFT_2026_v1. This will be updated in the next PR down the chain (#394).